home *** CD-ROM | disk | FTP | other *** search
/ CD World 1998 January / CD World - Ocak 1998.iso / misc / dbase55 / disk7 / cbtsamp.pak / ORDERS.MNU < prev    next >
Text File  |  1996-01-05  |  9KB  |  280 lines

  1. ******************************************************************************
  2. *  PROGRAM:      Orders.mnu
  3. *
  4. *  WRITTEN BY:   Borland Samples Group
  5. *
  6. *  DATE:         12/93
  7. *
  8. *  UPDATED:      6/95
  9. *
  10. *  REVISION:     $Revision:   1.58  $
  11. *
  12. *  VERSION:      Visual dBASE
  13. *
  14. *  DESCRIPTION:  This is a menu file used by Orders.wfm for
  15. *                performing simple tasks.  It allows adding and deleting
  16. *                records, searching for a value in the order field of the
  17. *                current table viewed, and exiting the form in view.
  18. *
  19. *  PARAMETERS:   FormObj -- the form to which this menu will belong.
  20. *
  21. *  CALLS:        None
  22. *
  23. *  USAGE:        form.menuFile = "Orders.mnu"
  24. *
  25. *******************************************************************************
  26. #include <Messdlg.h>
  27.  
  28. ** END HEADER -- do not remove this line*
  29. * Generated on 05/06/94
  30. *
  31. Parameter FormObj
  32. NEW ORDERS(FormObj,"Root")
  33. CLASS ORDERS(FormObj,Name) OF MENUBAR(FormObj,Name)
  34.    this.Text = ""
  35.    this.OnInit = {;set procedure to &_dbwinhome.samples\Sampproc.prg}
  36.  
  37.    DEFINE MENU FILE OF THIS;
  38.        PROPERTY;
  39.          Text "&File"
  40.  
  41.          DEFINE MENU EXIT OF THIS.FILE;
  42.              PROPERTY;
  43.                OnClick CLASS::EXIT_ONCLICK,;
  44.                Text "E&xit",;
  45.                StatusMessage "Leave Orders form."
  46.  
  47.    DEFINE MENU ORDER OF THIS;
  48.        PROPERTY;
  49.          Text "&Order"
  50.  
  51.          DEFINE MENU VIEWEDIT OF THIS.ORDER;
  52.              PROPERTY;
  53.                OnClick CLASS::VIEWEDITONCLICK,;
  54.                Text "&Edit",;
  55.                Shortcut "Ctrl-E",;
  56.                StatusMessage "Edit data."
  57.  
  58.          DEFINE MENU SEPARATOR1 OF THIS.ORDER;
  59.              PROPERTY;
  60.                Separator .T.,;
  61.                Text ""
  62.  
  63.          DEFINE MENU ADD OF THIS.ORDER;
  64.              PROPERTY;
  65.                OnClick CLASS::ADDONCLICK,;
  66.                Text "&Add",;
  67.                Enabled .T.,;
  68.                Shortcut "Ctrl-A",;
  69.                StatusMessage "Add a new order."
  70.  
  71.          DEFINE MENU DELETE OF THIS.ORDER;
  72.              PROPERTY;
  73.                OnClick CLASS::DELETEONCLICK,;
  74.                Text "&Delete",;
  75.                Enabled .F.,;
  76.                Shortcut "Ctrl-D",;
  77.                StatusMessage "Delete the current order."
  78.  
  79.          DEFINE MENU SEPARATOR2 OF THIS.ORDER;
  80.              PROPERTY;
  81.                Separator .T.,;
  82.                Text ""
  83.  
  84.          DEFINE MENU SEARCH OF THIS.ORDER;
  85.              PROPERTY;
  86.                OnClick CLASS::SEARCHONCLICK,;
  87.                Text "&Search ...",;
  88.                Shortcut "Ctrl-S",;
  89.                StatusMessage "Search for an order."
  90.  
  91.          DEFINE MENU SEPARATOR3 OF THIS.ORDER;
  92.              PROPERTY;
  93.                Separator .T.,;
  94.                Text ""
  95.  
  96.          DEFINE MENU CURRENT_CUSTOMER OF THIS.ORDER;
  97.              PROPERTY;
  98.                OnClick CLASS::CURRENTCUSTOMERONCLICK,;
  99.                Text "Custo&mer ...",;
  100.                Shortcut "Ctrl-M",;
  101.                StatusMessage "View detailed information about the current customer."
  102.  
  103.  
  104.    DEFINE MENU REPORT OF THIS;
  105.        PROPERTY;
  106.          Text "&Report"
  107.  
  108.          DEFINE MENU ORDERSREPORT OF THIS.REPORT;
  109.              PROPERTY;
  110.                OnClick {;create session ;set lock off ;report form orders},;
  111.                Text "&Invoices",;
  112.                Shortcut "Ctrl-I"
  113.  
  114.  
  115.  
  116.  
  117.    ****************************************************************************
  118.    procedure SearchOnClick
  119.  
  120.    * Bring up Search.wfm.
  121.    ****************************************************************************
  122.    private searchForm, searchItem, saveRec, saveFilt
  123.  
  124.    if reccount() = 0                       && If table is empty, don't search
  125.       InformationMessage("This table is empty.", "Oops")
  126.    else
  127.       form.CheckChanged(.T.)
  128.       set procedure to &_dbwinhome.samples\Search.wfm additive
  129.       searchForm = new SearchForm()
  130.       searchForm.keyName = "Order Number"  && Indicator of key expression
  131.       searchForm.formatting = "9999"       && format specific to this key
  132.       searchForm.mdi = .F.
  133.       searchItem = searchForm.Readmodal()
  134.       if type("searchItem") = "O" .and. searchItem.id <> 0
  135.                                       && If search wasn't cancelled
  136.          saveRec = recno()            && save current record in case seek is
  137.                                       && unsuccessful
  138.          if order() = "ORDER_NO"      && When run from Orders.wfm
  139.             seek searchForm.value
  140.          else                         && When run from Custord.wfm
  141.             locate for order_no = searchForm.value
  142.          endif
  143.          if .not. found()
  144.             InformationMessage(FormatStr("Order %1 \n Was not Found.",;
  145.                                          searchForm.value),;
  146.                                "Info")
  147.             if saveRec <= reccount()    && If weren't at eof(), go to saveRec
  148.                go saveRec
  149.             else
  150.                go bottom
  151.             endif
  152.          endif
  153.       endif
  154.  
  155.       searchForm.Release()
  156.       close procedure &_dbwinhome.samples\Search.wfm
  157.    endif
  158.  
  159.  
  160.    ****************************************************************************
  161.    procedure DeleteOnClick
  162.  
  163.    * Delete current record.
  164.    ****************************************************************************
  165.  
  166.    if ConfirmationMessage("Are you sure you want to delete this order?",;
  167.                           "Confirm") = YES
  168.       delete  && DELETED is ON, so deleted records are still there until
  169.               && a PACK is executed
  170.       commit()
  171.       form.changesMade = .F.
  172.       begintrans()
  173.       if type("form.nextOrderButton") <> "U"    && (orders.wfm)
  174.          form.prevOrderButton.OnClick()  && Move to prev record
  175.       else
  176.          form.vcrPrevButton.OnClick()           && (custord.wfm)
  177.       endif
  178.    endif
  179.  
  180.    ****************************************************************************
  181.    procedure AddOnClick
  182.  
  183.    * Add new record.
  184.    ****************************************************************************
  185.    private addForm, newOrder, saleDateField, orderNoField, custNoField, custNo,;
  186.            inEditMode, integrityInEffect
  187.  
  188.    form.CheckChanged(.T.)
  189.    if ConfirmationMessage("Are you sure you want to add an order?",;
  190.                           "Confirmation") = YES
  191.  
  192.  
  193.       orderNoField = field(1)                 && Customer_n field
  194.       custNoField = field(2)                  && Order_no field
  195.       saleDateField = field(3)                && Sale_date field
  196.  
  197.       if type("form.parentCustomerForm") <> "U"
  198.          custNo = form.customer_n
  199.       else
  200.          custNo = customer->customer_n        && Save customer no
  201.       endif
  202.  
  203.  
  204.       * If running from Custord.wfm, use form.curPage.inEditMode,
  205.       * otherwise, if from customer.wfm/orders.wfm, use form.inEditMode
  206.       if type("form.curPage") <> "U"
  207.          inEditMode = form.curPage.inEditMode
  208.          integrityInEffect = .T.              && Table integrity rules are used
  209.       else
  210.          inEditMode = form.inEditMode
  211.          integrityInEffect = .F.
  212.       endif
  213.  
  214.       if .not. inEditMode
  215.          form.ViewEdit()                      && Make sure record is editable
  216.       else if type("form.childBrowse") <> "U" && If calling from Customer/Orders
  217.          form.childBrowse.setFocus()
  218.       endif
  219.       form.changesMade = .T.
  220.       form.previousRecord = recno()
  221.       append blank
  222.       orderNoField = field(1)
  223.       newOrder = str(val(form.maxOrder) + 1,4)
  224.       replace &orderNoField with newOrder     && Assign new order number
  225.       if .not. integrityInEffect
  226.          replace &custNoField with custNo     && Integrity causes this automatically
  227.       endif
  228.       replace &saleDateField with date()      && Default sale date is today
  229.       form.maxOrder = newOrder
  230.       refresh
  231.       select lineitem
  232.       append blank
  233.       refresh
  234.       select orders
  235.    endif
  236.  
  237.  
  238.    ****************************************************************************
  239.    procedure CurrentCustomerOnclick
  240.    ****************************************************************************
  241.  
  242.    form.CheckChanged(.T.)
  243.    if type("form.parentCustomerForm") = "U"
  244.       if type ("form.childCustomerForm") = "U"
  245.          form.StartCustomerForm()
  246.          form.CallShowCustomer(orders->customer_n)
  247.       else
  248.          form.CallShowCustomer(orders->customer_n)
  249.          form.childCustomerForm.open()
  250.          form.childCustomerForm.windowState = 0
  251.          form.childCustomerForm.setFocus()
  252.       endif
  253.    else
  254.       form.parentCustomerForm.setFocus()
  255.    endif
  256.  
  257.  
  258.    ***************************************************************************
  259.    procedure ViewEditOnClick
  260.    ****************************************************************************
  261.  
  262.    form.ViewEdit()
  263.  
  264.    ****************************************************************************
  265.    procedure Exit_OnClick
  266.    ****************************************************************************
  267.  
  268.    if type ("form.parentCustomerForm") <> "U"
  269.       * Release parent form, which releases this child
  270.       form.parentCustomerForm.Release()
  271.    else
  272.       form.Release()
  273.    endif
  274.  
  275.  
  276. ENDCLASS
  277.  
  278.  
  279.  
  280.